﻿using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using LiveTiss.Classes;
using LiveTiss.Schemas;

namespace LiveTiss.Guias
{
    public partial class GuiaOdontologia : UserControl
    {
        #region Guia
        public ct_guiaOdontologia Guia
        {
            get { return (ct_guiaOdontologia)GetValue(GuiaProperty); }
            set { SetValue(GuiaProperty, value); }
        }

        public static readonly DependencyProperty GuiaProperty =
            DependencyProperty.Register("Guia", typeof(ct_guiaOdontologia), typeof(GuiaOdontologia), new PropertyMetadata(null));
        #endregion

        public GuiaOdontologia()
        {
            this.DataContext = this;
            if (this.Guia == null)
            {
                this.Guia = new ct_guiaOdontologia()
                {
                    cabecalhoGuia = new ct_cabecalhoGuiaOdonto()
                    {
                        dataAutorizacao = Util.EmptyDate,
                        dataAutorizacaoSpecified = false,
                        dataEmissaoGuia = Util.EmptyDate,
                        dataEmissaoGuiaSpecified = false,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaOdontoIdentificacaoFontePagadora()
                        {
                            ItemValue = string.Empty,
                            ItemElementName = ItemChoiceType6.cnpjFontePagadora
                        },
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty,
                        numeroGuiaPrincipal = string.Empty,
                        senhaAutorizacao = string.Empty,
                        validadeSenha = Util.EmptyDate,
                        validadeSenhaSpecified = false
                    },
                    dadosAtendimento = new ct_atendimentoOdontologia()
                    {
                        dataTerminoTratamento = Util.EmptyDate,
                        dataTerminoTratamentoSpecified = false,
                        tipoAtendimento = st_atendimentoOdonto.Item1,
                        tipoAtendimentoSpecified = true
                    },
                    dadosBeneficiario = new ct_guiaOdontologiaDadosBeneficiario()
                    {
                        identificadorBeneficiario = new byte[] { },
                        nomeBeneficiario = string.Empty,
                        nomeEmpresa = string.Empty,
                        nomePlano = string.Empty,
                        nomeTitular = string.Empty,
                        numeroCarteira = string.Empty,
                        numeroCNS = string.Empty,
                        numeroTelefone = string.Empty,
                        validadeCarteira = Util.EmptyDate,
                        validadeCarteiraSpecified = false
                    },
                    dadosContratadoExecutante = new ct_guiaOdontologiaDadosContratadoExecutante()
                    {
                        dadosContratado = new ct_guiaOdontologiaDadosContratadoExecutanteDadosContratado()
                        {
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.CRAS,
                                ufConselho = st_UF.RS
                            },
                            enderecoContratado = new ct_endereco()
                            {
                                cep = string.Empty,
                                codigoIBGEMunicipio = string.Empty,
                                codigoUF = st_UF.AC,
                                complemento = string.Empty,
                                logradouro = string.Empty,
                                municipio = string.Empty,
                                numero = string.Empty,
                                tipoLogradouro = st_tipoLogradouro.Item001
                            },
                            identificacao = new ct_identificacaoPrestadorExecutante()
                            {
                                ItemValue = string.Empty,
                                ItemElementName = ItemChoiceType.CNPJ
                            },
                            nomeContratado = string.Empty,
                            numeroCNES = string.Empty
                        },
                        dadosExecutante = new ct_profissionalExecutante()
                        {
                            codigoCBOS = st_CBOS.Item000000,
                            codigoCBOSSpecified = false,
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.COREN,
                                ufConselho = st_UF.AC
                            },
                            nomeExecutante = string.Empty
                        }
                    },
                    observacao = string.Empty,
                    outrasDespesas = new ct_outrasDespesas()
                    {
                        despesa = new List<ct_outrasDespesasDespesa>(),
                        totalGeralOutrasDespesas = 0,
                        totalGeralOutrasDespesasSpecified = true
                    },
                    procedimentosExecutados = new ct_guiaOdontologiaProcedimentosExecutados()
                    {
                        procedimentoExecutado = new List<ct_guiaOdontologiaProcedimentosExecutadosProcedimentoExecutado>(
                            new ct_guiaOdontologiaProcedimentosExecutadosProcedimentoExecutado[] 
                            {
                                new ct_guiaOdontologiaProcedimentosExecutadosProcedimentoExecutado()
                                {
                                    dataRealizacao = Util.EmptyDate,
                                    face = string.Empty,
                                    denteRegiao = new ct_denteRegiao()
                                    {
                                        ItemElementName = ItemChoiceType8.dente,
                                        ItemValue = st_dente.Item11
                                    },
                                    franquiaCoparticipacao = 0,
                                    franquiaCoparticipacaoSpecified = true,
                                    procedimentoOdonto = new ct_tabela()
                                    {
                                        codigo = string.Empty,
                                        descricao =string.Empty,
                                        tipoTabela = st_tabela.Item00
                                    },
                                    quantidade = 0,
                                    quantidadeSpecified = true,
                                    quantidadeUS = 0,
                                    quantidadeUSSpecified = true,
                                    valor = 0,
                                    valorSpecified = true
                                }
                        }),
                        quantidadeTotalUS = 0,
                        quantidadeTotalUSSpecified = true,
                        totalFranquiaCoparticipacao = 0,
                        totalFranquiaCoparticipacaoSpecified = true,
                        valorTotal = 0,
                        valorTotalSpecified = true
                    },
                    tipoFaturamento = st_tipoFaturamento.P,
                    tipoFaturamentoSpecified = true
                };
            }
            InitializeComponent();
        }
    }
}
